package com.tham.dao;

import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.MissingResourceException;
/*
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
*/
import oracle.jdbc.OracleTypes;

import org.apache.log4j.Logger;


import com.portal.dao.AccesoDAO;
import com.tham.dto.IndicacionDTO;
import com.tham.dto.PreparacionDTO;
import com.tham.dto.PreparacionMedioDTO;
import com.tham.dto.ServPrepDTO;
import com.tham.vo.IndicacionVO;
import com.tham.vo.LabPreparacUnionVO;
import com.tham.vo.LabPreparacionVO;
import com.tham.vo.PreparacionExamenVO;
import com.tham.vo.PreparacionVO;
import utiles.AppProperties;
import utiles.ConexionPool;
import utiles.utilitarios;

public class PreparacionDAO {
	private static Logger log = Logger.getLogger(PreparacionDAO.class);
	String pkgVar = (AppProperties.getProperty("aplicacion", "PACKAGE"));
	String horaActual = utilitarios.getHoraActual();

	public List<PreparacionDTO> getPreparacionByEx(String idExamen) throws SQLException, IOException{	
		Connection conn = ConexionPool.getConnectionPool();	    		
		List<PreparacionDTO> listPreparacion = new ArrayList<PreparacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getPreparacionByEx(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, idExamen);	
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);

			while (rs.next()) {
				PreparacionDTO prepDTO = new PreparacionDTO();
				prepDTO.setIdPreparacionEx(rs.getString(1));
				prepDTO.setIdPreparacion(rs.getString(2));	
				prepDTO.setDescPreparacion(rs.getString(3));
				prepDTO.setNumMesInicio(rs.getString(4));
				prepDTO.setNumMesFinal(rs.getString(5));
				prepDTO.setCodigoFonasa(rs.getString(6));
				listPreparacion.add(prepDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.getPreparacionByEx SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listPreparacion;

	}
	
	public List<PreparacionMedioDTO> getPreparacionMedio() throws SQLException, IOException{	
		Connection conn = ConexionPool.getConnectionPool();	    		
		List<PreparacionMedioDTO> listPreparacion = new ArrayList<PreparacionMedioDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getPreparacionMedio(?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);				
			stmt.registerOutParameter(1, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(1);

			while (rs.next()) {
				PreparacionMedioDTO prepMedioDTO = new PreparacionMedioDTO();
				prepMedioDTO.setIdPreparacMedio(rs.getString(1));
				prepMedioDTO.setDescripcion(rs.getString(2));					
				listPreparacion.add(prepMedioDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.getPreparacionMedio SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listPreparacion;

	}
	
	
	public List<IndicacionDTO> getIndicacionesByIDPrep(String idPreparacion) throws SQLException, IOException{	
		
		//System.out.println("idPreparacion:"+idPreparacion);
		Connection conn = ConexionPool.getConnectionPool();	    		
		List<IndicacionDTO> listIndicaciones = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getIndicacionesByIDPrep(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);	
			stmt.setString(1, idPreparacion);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);

			while (rs.next()) {
				IndicacionDTO indicDTO = new IndicacionDTO();
				indicDTO.setIdPpreparacionUnion(rs.getString(1));
				indicDTO.setIdPreparacionIndic(rs.getString(2));
				indicDTO.setDescripcion(rs.getString(3));		
				indicDTO.setNotaSN(rs.getString(4));
				indicDTO.setFechaCompleta(rs.getString(5));				
				indicDTO.setCodFonasa(rs.getString(6));
				listIndicaciones.add(indicDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.getIndicacionesByIDPrep SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listIndicaciones;

	}
	
	
	public List<IndicacionDTO> setPreparacionUpByAgPr(PreparacionVO preparacionVO) throws SQLException, IOException{
		Connection conn = ConexionPool.getConnectionPool();	
    	List<IndicacionDTO> listResultado = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.setPreparacionUpByAgPr(?,?,?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, preparacionVO.getIdAgendaReservada());
			stmt.setString(2, preparacionVO.getIdPreparUnion());
			stmt.setString(3, preparacionVO.getObservacion());
			stmt.setString(4, preparacionVO.getIdPreparMedio());			
			stmt.registerOutParameter(5,  OracleTypes.CURSOR);	
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(5);            
			while (rs.next()) {
			  IndicacionDTO indicacionDTO = new IndicacionDTO();
			  indicacionDTO.setDescripcion(rs.getString(1));			 
			  listResultado.add(indicacionDTO);				  
		    }
		    rs.close();
		    stmt.close();	
		    
		    //System.out.println(">>>"+preparacionVO.getIdPreparMedio());
		    String prep = preparacionVO.getIdPreparMedio().trim();
		    if (prep.equals("4")){ // correo
		    	 //System.out.println("1 en correo");
		       setPreparaCorreoIndicaciones(preparacionVO.getIdAgendaReservada());		      
		    }else{
		    	 //System.out.println("0 en correo");
		    }
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.setPreparacionUpByAgPr SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listResultado;
	}	
	
	public boolean setPreparaCorreoIndicaciones(String idAgendaReserv) throws MissingResourceException, IOException, SQLException{
		Connection conn = ConexionPool.getConnectionPool();	    		
		//List<IndicacionDTO> listIndicaciones = new ArrayList<IndicacionDTO>();
		String nombre;
		String idPreparacion = "";
		//String horaCita;
		//String fecCita;
		String correo = "";
		String preparacion = "";
		String html1 = "<table width='660' height='320' border='0'>";
		String html2 = "";
		String html3 = "";
		
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getMailDatosByIDAgReser(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);	
			stmt.setString(1, idAgendaReserv);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);

			while (rs.next()) {			
				//System.out.println("2 en correo");
				 //rs.getString(2); // ar.id_paciente,
				nombre     = rs.getString(5); //pac.STR_NOMBRE,
	            nombre     = nombre + " " + rs.getString(6); //pac.STR_APELLIDO_PAT, 
	            nombre     = nombre + " "  + rs.getString(7); //pac.STR_APELLIDO_MAT,
	            html1      = html1 + "<tr><td>Señor(a):&nbsp;" + nombre + "</td></tr><br>";
	            html1      = html1 + "<tr><td>Usted tienen una cita de Exámen.</td></tr><br><br>";
				idPreparacion = rs.getString(1); //D_PREPARACION,  
				String hora = rs.getString(3);
				if (hora.length() == 4){					
					hora = hora.substring(0,2)+":"+hora.substring(2,4);
				}else{						
					hora = hora.substring(0,1)+":"+hora.substring(1,3);
				}
                html1      = html1+ "<tr><td>Hora Cita:&nbsp;" + hora + "</td></tr>"; //ap.NUM_HORA_CITA,
                html1      = html1+ "<tr><td>Fecha Cita:&nbsp;"+ rs.getString(4) + "</td></tr><br><br>"; // ap.FEC_CITA,
                correo     = rs.getString(8); //pac.STR_CORREO_ELECTRONICO 		
                //System.out.println("correo>>>"+correo);
			}
			rs.close();
			stmt.close();
			
			
			/*otro para rescata las indicaciones*/
			
			query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getMailIndicByIDPrep(?,?) }"; 	       
			stmt = conn.prepareCall(query);	
			stmt.setString(1, idPreparacion);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			rs = (ResultSet)stmt.getObject(2);
			html2 = "<ul> ";
			while (rs.next()) {	
				//System.out.println("3 en correo");
				preparacion =  rs.getString(1);    
				//System.out.println("preparacion:"+preparacion);
                html2 = html2 + "<li>" + rs.getString(2) + "</li>";  
			}
			html2 = html2 + "</ul><br> ";
			html1 = html1 + "<tr><td>Nombre de Examen:&nbsp;" + preparacion + "</td></tr><br>";	
			html3 = "<tr><td>Atentamente,</td></tr><br>";
			html3 = html3 + "<tr><td>Liga Chilena Contra la Epilepsia</td></tr></table>";
			rs.close();
			stmt.close();			
			
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.setPreparaCorreoIndicaciones SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		
		
		String body = html1+html2+html3;
		String subject = "Indicaciones para examen "+  preparacion;
		String param[] = new String[12];
		param[0]="smtp.liche.cl";  //smtpServer 
		param[1]="no_responder@liche.cl";  //smtpUser
		param[2]="no_responder@liche.cl";  //from
		param[3]="";  //smtpPass
		param[4]="25";  //smtpPort
		param[5]="FALSE"; //smtpAuth
		param[6]="FALSE";//smtpStls 6
		param[7]=correo;//to = 7
		param[8]="";//cc = 8
		param[9]=subject;//asunto = 9
		param[10]="html";//tipo = 10
		param[11]=body;//boby =11
		
		String bodyMsg    = body;
		String setSubject = subject; 
		String mailto     = correo;
		String mailcc     = "";
		//int vEst=sendCorreoIndicaciones(correo,cc, body, subject,"html");
		
		//int vEst=AccesoDAO.sendMailLiga(param);
		int vEst=AccesoDAO.sendMailLiga(mailto, mailcc, bodyMsg, setSubject, param, "html");
		if (vEst!=1){
			System.out.println(horaActual+"Mensaje Indicaciones NO enviado");
			//System.out.println("5 en correo");
			return false;
		}
		
				
		return true;
	}
	
	public List<IndicacionDTO> setPrepIndicInsUpByIdPrep(IndicacionVO indicacionVO) throws SQLException, IOException{
		Connection conn = ConexionPool.getConnectionPool();	
    	List<IndicacionDTO> listResultado = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.setPrepIndicInsUpByIdPrep(?,?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);
			stmt.setString(1, indicacionVO.getIdPreparacionIndic());
			stmt.setString(2, indicacionVO.getDescripcion());
			stmt.setString(3, indicacionVO.getNotaSN());					
			stmt.registerOutParameter(4,  OracleTypes.CURSOR);	
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(4);            
			while (rs.next()) {
			  IndicacionDTO indicacionDTO = new IndicacionDTO();
			  indicacionDTO.setDescripcion(rs.getString(1));			 
			  listResultado.add(indicacionDTO);				  
		    }
		    rs.close();
		    stmt.close();			    
		    
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.setPrepIndicInsUpByIdPrep SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listResultado;
	}	
	
	/*
	public int sendCorreoIndicaciones(String to, String cc, String body, String setSubject, String tipoTexto){
		int varEstado;
   		try
    		{
   			varEstado=1;
   			
   			Properties props = new Properties();
   			props.clear();
   			//List<String> param = Arrays.asList(confEmail);
			String smtpServer  = "smtp.liche.cl"; 
			String smtpAuth    = "FALSE";
			String smtpUser    = "contacto@liche.cl";
			String from        = "contacto@liche.cl";
			String smtpPass    = "";
			String smtpPort    = "25"; 
			String smtpStls    = "FALSE";
			
			
   			props.setProperty("mail.smtp.host", smtpServer);
   			props.setProperty("mail.smtp.mail.sender",from); 
   			props.setProperty("mail.smtp.user", from);
   			props.setProperty("mail.smtp.auth", smtpAuth);
      		props.setProperty("mail.smtp.port", smtpPort);
      		props.setProperty("mail.smtp.starttls.enable", smtpStls);
      		Session session = Session.getDefaultInstance(props);
      		
      		MimeMessage message = new MimeMessage(session);
      		message.setFrom(new InternetAddress(from));
      		message.setSender(new InternetAddress(from));
      		
      		message.addRecipients(Message.RecipientType.TO, to);
      		//if (cc!=null) message.addRecipient(Message.RecipientType.CC, new InternetAddress(cc));
      		 message.setSubject(setSubject);
      		if (tipoTexto=="html")	message.setText(body, "ISO-8859-1", "html");
      		 else   			message.setText(body);
      		 Transport t = session.getTransport("smtp");
      		 t.connect(smtpUser,smtpPass);
      		 t.sendMessage(message,message.getAllRecipients());
      		 t.close();
      		 
      		//System.out.println("7 en correo");

    	}catch (MessagingException mex)  {
    		System.out.println("Error PreparacionDAO.sendCorreoIndicaciones"+ mex.getMessage());
      		varEstado=0;
      		log.error("Error PreparacionDAO.sendCorreoIndicaciones"+ mex.getMessage());      		
    	} finally {
    		
    	}
    	return varEstado;
	}
		*/
	 
	public static void main(String [ ] args)
	{
		//String hora = "1840";
		//hora = hora.substring(0,2)+":"+hora.substring(2,4);
		//System.out.println(hora);
		
		String hora = "931";
		hora = hora.substring(0,1)+":"+hora.substring(1,3);
		System.out.println(hora);
	}
	
	public List<PreparacionDTO> getAllPreparacion() throws SQLException, IOException{	
		Connection conn = ConexionPool.getConnectionPool();	    		
		List<PreparacionDTO> listPreparacion = new ArrayList<PreparacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getAllPreparacion(?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);			
			stmt.registerOutParameter(1, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(1);

			while (rs.next()) {
				PreparacionDTO prepDTO = new PreparacionDTO();
				prepDTO.setIdPreparacion(rs.getString(1));	
				prepDTO.setDescPreparacion(rs.getString(2));
				prepDTO.setNumMesInicio(rs.getString(3));
				prepDTO.setNumMesFinal(rs.getString(4));				
				listPreparacion.add(prepDTO);	
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.getAllPreparacion SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listPreparacion;

	}
	
	public List<ServPrepDTO> geAllServiciosAndPrep() throws SQLException, IOException{	
		Connection conn = ConexionPool.getConnectionPool();	    		
		List<ServPrepDTO> listPreparacion = new ArrayList<ServPrepDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.geAllServiciosAndPrep(?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);			
			stmt.registerOutParameter(1, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(1);

			while (rs.next()) {
				ServPrepDTO servPrepDTO = new ServPrepDTO();
				servPrepDTO.setIdPreparacionExamen(rs.getString(1));
				servPrepDTO.setIdPreparacion(rs.getString(2));	
				servPrepDTO.setServicio(rs.getString(3));
				servPrepDTO.setIdExamen(rs.getString(4));
				servPrepDTO.setIdpreparacion2(rs.getString(5));		
				servPrepDTO.setPreparacion(rs.getString(6));
				listPreparacion.add(servPrepDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.geAllServiciosAndPrep SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listPreparacion;
	}
	
	public List<IndicacionDTO> setLabPrepExamen(PreparacionExamenVO preparacionExamenVO) throws SQLException, IOException{
		Connection conn = ConexionPool.getConnectionPool();	
    	List<IndicacionDTO> listResultado = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.setLabPrepExamen(?,?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);			
			stmt.setString(1, preparacionExamenVO.getIdExamenPrep());
			stmt.setString(2, preparacionExamenVO.getIdExamen());
			stmt.setString(3, preparacionExamenVO.getIdPreparacion());				
			stmt.registerOutParameter(4,  OracleTypes.CURSOR);	
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(4);            
			while (rs.next()) {
			  IndicacionDTO indicacionDTO = new IndicacionDTO();
			  indicacionDTO.setIdPreparacionIndic(rs.getString(2));	
			  //System.out.println("Registro Insertado: "+rs.getString(2));
			  listResultado.add(indicacionDTO);				  
		    }
		    rs.close();
		    stmt.close();			   
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.setLabPrepExamen SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listResultado;
	}	
	
	public List<IndicacionDTO> setLabPreparacion(LabPreparacionVO lpreparacionVO) throws SQLException, IOException{
		Connection conn = ConexionPool.getConnectionPool();	
    	List<IndicacionDTO> listResultado = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.setLabPreparacion(?,?,?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);			
			stmt.setString(1, lpreparacionVO.getIdPreparacion());
			stmt.setString(2, lpreparacionVO.getPreparacion());
			stmt.setString(3, lpreparacionVO.getMesInicio());
			stmt.setString(4, lpreparacionVO.getMesFinal());			
			stmt.registerOutParameter(5,  OracleTypes.CURSOR);	
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(5);            
			while (rs.next()) {
			  IndicacionDTO indicacionDTO = new IndicacionDTO();
			  indicacionDTO.setIdPreparacionIndic(rs.getString(2));	
			  //System.out.println("Registro Insertado LabPreparacion: "+rs.getString(2));
			  listResultado.add(indicacionDTO);				  
		    }
		    rs.close();
		    stmt.close();			   
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.setLabPreparacion SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listResultado;
	}
	
public List<IndicacionDTO> getAllIndicacByIDPrep(String idPreparacion) throws SQLException, IOException{	
		
		//System.out.println("idPreparacion:"+idPreparacion);
		Connection conn = ConexionPool.getConnectionPool();	    		
		List<IndicacionDTO> listIndicaciones = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.getAllIndicacByIDPrep(?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);	
			stmt.setString(1, idPreparacion);
			stmt.registerOutParameter(2, OracleTypes.CURSOR);
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(2);

			while (rs.next()) {
				IndicacionDTO indicDTO = new IndicacionDTO();
				indicDTO.setIdPpreparacionUnion(rs.getString(1));
				indicDTO.setIdPreparacionIndic(rs.getString(2));
				indicDTO.setDescripcion(rs.getString(3));		
				indicDTO.setNotaSN(rs.getString(4));							
				listIndicaciones.add(indicDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.getAllIndicacByIDPrep SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listIndicaciones;
	}

	public List<IndicacionDTO> setLabPrepUnion(LabPreparacUnionVO labPreparacUnionVO) throws SQLException, IOException{
		Connection conn = ConexionPool.getConnectionPool();	
		List<IndicacionDTO> listResultado = new ArrayList<IndicacionDTO>();
		try {
			String query = "{ call "+pkgVar+".PKG_LAB_PREPARACION.setLabPrepUnion(?,?,?,?) }"; 	       
			CallableStatement  stmt = conn.prepareCall(query);			
			stmt.setString(1, labPreparacUnionVO.getIdPreparacionUnion());
			stmt.setString(2, labPreparacUnionVO.getIdPreparacionIndicacion());
			stmt.setString(3, labPreparacUnionVO.getIdPreparacion());			;			
			stmt.registerOutParameter(4,  OracleTypes.CURSOR);	
			stmt.execute();
			ResultSet rs = (ResultSet)stmt.getObject(4);            
			while (rs.next()) {
			  IndicacionDTO indicacionDTO = new IndicacionDTO();
			  indicacionDTO.setIdPreparacionIndic(rs.getString(2));	
			  System.out.println("Registro Insertado LabPreparacionUnion: "+rs.getString(2));
			  listResultado.add(indicacionDTO);				  
		    }
		    rs.close();
		    stmt.close();			   
		} catch (SQLException ex) {  
			log.error("Error PreparacionDAO.setLabPrepUnion SQLException: " +ex.getMessage());
			System.out.println(ex.getMessage());
		} finally {			
			conn.close();
			conn = null;
		}
		return listResultado;
	}


	

}
